<?php

include_once("database.php");

class Materiel {

	private $sql;

	public function __construct() {
		$this->sql = Database::getInstance();
	}

	public function addMateriel($description, $reference, $tailleLot, $idEtat, $idMaterielSport) {
		
		$retour = array();
		
		if($tailleLot == "") {
			$tailleLot = 1;
		}

		if($this->sql->addMateriel($description, $reference, $tailleLot, $idEtat, $idMaterielSport)) {
			if($this->sql->updateStockMaterielSport($idMaterielSport, $tailleLot)) {
				$retour["message"] = "Ajout OK";
			} else {
				$retour["message"] = "Problème de mise à jour du stock";
			}
		} else {
			$retour["message"] = "Problème Ajout";
		}

		echo json_encode($retour);
	}

	/*public function updateMateriel($idEtat, $idMateriel, $idMaterielSport, $idAssociation, $description, $tailleLot, $action, $etatActuel=false, $reference=null, $taille=null) {

		$retour = array();

		if($this->sql->updateMateriel($idEtat, $idMateriel, $idMaterielSport, $idAssociation, $description, $tailleLot, $etatActuel, $reference, $taille)) {
			
			if($this->sql->updateStock($idMaterielSport, $tailleLot, $action)) {
				$retour["message"] = "Modification OK";
			} else {
				$retour["message"] = "Stock négatif";
			}
		} else {
			$retour["message"] = "Erreur modification";
		}

		echo json_encode($retour);
	}
	
	public function deleteMateriel($idMateriel) {
		$retour = array();

		if($this->sql->isNotReserved($idMateriel)) {
			if($this->sql->deleteMateriel($idMateriel)) {
				$retour["message"] = "Suppression OK";
			}
			else {
				$retour["message"] = "PB Suppression";
			}
		}
		else {

			$retour["message"] = "Materiel en cours de réservation";
		}
		echo json_encode($retour);
	}	

	public function getAllCategorie($idAssociation) {

		$allCategorie = $this->sql->getAllCategorie($idAssociation);

		return $allCategorie;
	}

	public function getAllMaterielByCategorie($idAssociation, $idCategorie) {

		$retour = array();

		$materiel = $this->sql->getAllMaterielByCategorie($idCategorie);
		if($materiel != null) {
			return $materiel;
		} else {
			$retour["message"] = "La categorie est vide";
			return  $retour;
		}
	}

	public function getInfoMateriel($idMateriel) {
		return json_encode($this->sql->getInfoMateriel($idMateriel)); // a tester vu que objet de l'autre coté
		
	}*/

	public function getAllCategorie($idAdherent) {
		return $this->sql->getAllMaterielSportByAssoc($this->sql->getIdAssoc($idAdherent)->numero_association);
	}

	public function getAllMaterielByCategorie($id_categ) {
		return $this->sql->getAllMateriel($id_categ);
	}
	
	public function getListe($idMaterielSport, $idAssociation) {
		echo json_encode($this->sql->getListe($idMaterielSport, $idAssociation));
	}
	/**
	* Methode ajoutant une nouvelle catégorie de materiel de sport
	* exemple : Maillot, Ballon
	* @param : la désignation textuel
	* @param : La catégorie du materiel : ex : Foot extrait par l'association 
	*/
	public function addMaterielSport($designation, $idAssociation) {
		$retour = array();

		if($this->sql->addMaterielSport($designation, $idAssociation)) {
			$retour["message"] = "Ajout ok";
			$retour["designation"] = $designation;
			
		} else {
			$retour["message"] = "Pb ajout";
			$retour["designation"] = $designation;
		}

		echo json_encode($retour);
	}

	/**
	* Methode permettant de modifier une catégorie de materiel
	* 
	*/
	public function updateMaterielSport($idMaterielSport, $designation) {
		$retour = array();

		if($this->sql->updateMaterielSport($idMaterielSport, $designation)) {
			$retour["message"] = "Modification ok";
			$retour["designation"] = $designation;
		}
		else {
			$retour["message"] = "Erreur de modification";
			$retour["designation"] = $designation;
		}

		echo json_encode($retour);
	}

	public function deleteMaterielSport($idMaterielSport) {
		$retour = array();
		if($this->sql->deleteMaterielSport($idMaterielSport)) {
			if($this->sql->deleteMaterielFromMaterielSport($idMaterielSport)) {
				$retour["message"] = "supression OK";
			} else {
				$retour["message"] = "Impossible de supprimer le materiel associé";
			}
		} else {
			$retour["message"] = "Erreur supression";
		}
		echo json_encode($retour);
	}

	public function getInfoMaterielSport($idMaterielSport) {
		echo json_encode($this->sql->getInfoMaterielSport($idMaterielSport));
	}
}

?>